import numpy as np
import pandas as pd
# 设置随机种子,确保结果可重复
np.random.seed(42)
# 创建包含100行数据的DataFrame
data = pd.DataFrame({
'Category': np.random.choice(['A', 'B', 'C'], 100),
'Value1': np.random.randn(100),
'Value2': np.random.randn(100) + 2
})
# 创建2x2的子图布局
fig, axes = plt.subplots(2, 2, figsize=(12, 10))
# 子图1:箱线图
sns.boxplot(data=data, x='Category', y='Value1', ax=axes[0, 0])
axes[0, 0].set_title('箱线图')
# 子图2:小提琴图
sns.violinplot(data=data, x='Category', y='Value1', ax=axes[0, 1])
axes[0, 1].set_title('小提琴图')
# 子图3:热力图
corr = data[['Value1', 'Value2']].corr()
sns.heatmap(corr, annot=True, cmap='coolwarm', ax=axes[1, 0])
axes[1, 0].set_title('相关性热力图')
# 子图4:散点图带回归线
sns.regplot(data=data, x='Value1', y='Value2', ax=axes[1, 1])
axes[1, 1].set_title('散点图与回归线')
plt.tight_layout()
plt.show()